************Initial setting**************

# load packages
library(shiny)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## √ ggplot2 3.3.2     √ purrr   0.3.4
## √ tibble  3.0.4     √ dplyr   1.0.2
## √ tidyr   1.1.2     √ stringr 1.4.0
## √ readr   1.4.0     √ forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(DBI)
library(RSQLite)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
# load dependency
#setwd('COVID-Trends-on-Twitter/')
source('function-db.R',encoding = 'UTF-8')
source('function-pt.R',encoding = 'UTF-8')
dbpathT='Covid-tweets-en.db'
dbpathR='Covid-reddit-en.db'
connT=dbConnect(SQLite(),dbpathT)
connR=dbConnect(SQLite(),dbpathR)

***************Geo Tweets map*****************

# spread data
covid=read.csv('us_states_covid19_daily.csv')%>%
    select(date,positiveIncrease,state)%>%
    mutate(month=month(ymd(date)))%>%
    {aggregate(positiveIncrease~state+month,.,sum)}
# a group of keywords
keyword='Mask#N95#口罩'
keyword=keyword%>%str_split('#')%>%.[[1]]
# a group of data
trend=keyword%>%
    {getTwitterTrend(connT,geoinfo='state',trend='month',keywords=.,period=NULL)}%>%
    filter(country=='United States')%>%
    mutate(month=as.integer(month))
# example
geoTrendMap(covid,trend)

************Finial cleaning**************

dbDisconnect(connT)
dbDisconnect(connR)
rm(connR,connT,covid,keyword,trend,trend1,trend2)
rm(dbpathR,dbpathT,keywords1,keywords2)
rm(geoTrendMap,geoTrendPlot,trendPlot,trendsPlot)
rm(getRedditData,getRedditTrend,getTwitterData,getTwitterTrend)
gc()
##           used (Mb) gc trigger  (Mb) max used  (Mb)
## Ncells 1409709 75.3    2642034 141.1  2642034 141.1
## Vcells 2786701 21.3    8388608  64.0  7630722  58.3